Skip to content

Added YUM implementation of OS package build tool#14203

Merged
fheinecke merged 47 commits into
masterfrom
fred/rfd-0058-YUM-implementation
Aug 2, 2022
Merged

Added YUM implementation of OS package build tool#14203
fheinecke merged 47 commits into
masterfrom
fred/rfd-0058-YUM-implementation

Conversation

@fheinecke
Copy link
Copy Markdown
Contributor

@fheinecke fheinecke commented Jul 7, 2022

This PR has several inter-dependent changes:

  • Renamed the "build-apt-repos" to "build-os-package-repos"
  • Rewrote the tool to use subcommands (i.e. from go run . <args> to go run . <apt/yum> <args>)
  • Implemented YUM repo building per rfd/0058-package-distribution.md
  • Added os-specific "*.repo" files for use with dnf config-manager and yum-config-manager
  • Added redirects on APT and YUM buckets from index.html to https://goteleport.com/docs/installation/
  • Refactored dronegen to more easily support adding OS package repos to the promotion pipeline
  • Added YUM repo building to dronegen
  • Added dronegen parallelism support
  • Added dronegen resource limit support

Before this PR is merged I need to run migrations for old Teleport versions to populate the prod bucket with old release artifacts. Additionally much of it's functionality is dependent on https://github.com/gravitational/cloud-terraform/pull/701 being merged first.

This PR is ready for code review but not yet ready for merge.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jul 7, 2022

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@r0mant r0mant requested a review from tcsc July 7, 2022 18:53
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jul 7, 2022

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

2 similar comments
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jul 7, 2022

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jul 7, 2022

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@fheinecke fheinecke force-pushed the fred/rfd-0058-YUM-implementation branch from 3622a14 to 60e1ea2 Compare July 7, 2022 19:46
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jul 7, 2022

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

Comment thread build.assets/tooling/cmd/build-os-package-repos/gpg.go
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jul 8, 2022

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@r0mant
Copy link
Copy Markdown
Collaborator

r0mant commented Jul 11, 2022

@capnspacehook @timothyb89 Could you please take a look at this PR?

Comment thread dronegen/apt.go Outdated
Comment thread build.assets/tooling/cmd/build-os-package-repos/command_executor.go Outdated
Copy link
Copy Markdown
Contributor

@timothyb89 timothyb89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, though with the caveat that I haven't really tested anything. Just a couple small questions!

Comment thread dronegen/os_repos.go
// * RPM migrations after new YUM pipeline is done
func artifactMigrationPipeline() []pipeline {
migrationVersions := []string{
// These versions were migrated as a part of the new `promoteAptPipeline`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems a bit unclear to me given all the entries are commented out. Is it a "add the version temporarily to the list then comment it out once migrated" situation? Is there a procedure we could link to if it comes up in the future? (or does it matter?)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's exactly it. I can write up some docs somewhere... but outside of adding a new OS package repo type (like YUM or APK) it's pretty unlikely that we'll need to use this unless a customer complains about an old version being missing. It's really nice to have (greatly simplifies migrations) but will probably be very infrequently used after this PR is completed.

Comment thread dronegen/yum.go Outdated
Comment thread build.assets/tooling/cmd/build-os-package-repos/runners.go Outdated
@github-actions
Copy link
Copy Markdown
Contributor

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@github-actions
Copy link
Copy Markdown
Contributor

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@github-actions
Copy link
Copy Markdown
Contributor

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@github-actions
Copy link
Copy Markdown
Contributor

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@github-actions
Copy link
Copy Markdown
Contributor

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@github-actions
Copy link
Copy Markdown
Contributor

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@github-actions
Copy link
Copy Markdown
Contributor

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@fheinecke fheinecke enabled auto-merge (squash) July 29, 2022 00:10
@github-actions
Copy link
Copy Markdown
Contributor

@fheinecke - this PR is large and will require admin approval to merge. Consider breaking it up into a series smaller changes.

@fheinecke fheinecke disabled auto-merge August 2, 2022 16:38
@fheinecke fheinecke enabled auto-merge (squash) August 2, 2022 16:49
@fheinecke fheinecke merged commit b022fea into master Aug 2, 2022
fheinecke added a commit that referenced this pull request Aug 8, 2022
* Added YUM implementation of OS package build tool

* Addressed PR comments

* Added YUM migrations

* Added curl to YUM dependencies

* Changed pipelines to use golang:1.18.4-bullseye for Go

* Implemented proper repo downloading logic

* Fixed other merge conflicts

* Added artifacts cleanup

* Removed delete on s3 sync

* Added RPM migrations

* v8 migrations

* Partial v8 migration

* Migration remainder

* Reduced requested resources

* Updated resource limits per step

* Added k8s stage resource limits to drone

* Fixed format issue

* Removed resource requests

* Added `depends_on` support to dronegen

* v8.3 migrations

* Fixed parallelism

* Removed migration parallelism

* Fixed RPM base arch lookup

* v6 and v7 YUM migration

* Fixed missing ISA

* Updated repo file path

* Added logging

* Removed vars from repo file

* v8.3 migration first batch

* v8.3 migration second batch

* v9.0 migration

* v9.1 migration

* v9.2 migration

* v9.3 first migration

* v9.3 second migration

* v10.0 migration

* Removed migrations

* Disabled shell linting non-issues

* Fixed linter problem

* More linter fixes
fheinecke added a commit that referenced this pull request Aug 9, 2022
* Added YUM implementation of OS package build tool

* Addressed PR comments

* Added YUM migrations

* Added curl to YUM dependencies

* Changed pipelines to use golang:1.18.4-bullseye for Go

* Implemented proper repo downloading logic

* Fixed other merge conflicts

* Added artifacts cleanup

* Removed delete on s3 sync

* Added RPM migrations

* v8 migrations

* Partial v8 migration

* Migration remainder

* Reduced requested resources

* Updated resource limits per step

* Added k8s stage resource limits to drone

* Fixed format issue

* Removed resource requests

* Added `depends_on` support to dronegen

* v8.3 migrations

* Fixed parallelism

* Removed migration parallelism

* Fixed RPM base arch lookup

* v6 and v7 YUM migration

* Fixed missing ISA

* Updated repo file path

* Added logging

* Removed vars from repo file

* v8.3 migration first batch

* v8.3 migration second batch

* v9.0 migration

* v9.1 migration

* v9.2 migration

* v9.3 first migration

* v9.3 second migration

* v10.0 migration

* Removed migrations

* Disabled shell linting non-issues

* Fixed linter problem

* More linter fixes
fheinecke added a commit that referenced this pull request Aug 9, 2022
* Added YUM implementation of OS package build tool

* Addressed PR comments

* Added YUM migrations

* Added curl to YUM dependencies

* Changed pipelines to use golang:1.18.4-bullseye for Go

* Implemented proper repo downloading logic

* Fixed other merge conflicts

* Added artifacts cleanup

* Removed delete on s3 sync

* Added RPM migrations

* v8 migrations

* Partial v8 migration

* Migration remainder

* Reduced requested resources

* Updated resource limits per step

* Added k8s stage resource limits to drone

* Fixed format issue

* Removed resource requests

* Added `depends_on` support to dronegen

* v8.3 migrations

* Fixed parallelism

* Removed migration parallelism

* Fixed RPM base arch lookup

* v6 and v7 YUM migration

* Fixed missing ISA

* Updated repo file path

* Added logging

* Removed vars from repo file

* v8.3 migration first batch

* v8.3 migration second batch

* v9.0 migration

* v9.1 migration

* v9.2 migration

* v9.3 first migration

* v9.3 second migration

* v10.0 migration

* Removed migrations

* Disabled shell linting non-issues

* Fixed linter problem

* More linter fixes
reedloden pushed a commit that referenced this pull request Aug 15, 2022
… into branch/v8 (#15350)

Added YUM implementation of OS package build tool (#14203)

* Added YUM implementation of OS package build tool

* Addressed PR comments

* Added YUM migrations

* Added curl to YUM dependencies

* Changed pipelines to use golang:1.18.4-bullseye for Go

* Implemented proper repo downloading logic

* Fixed other merge conflicts

* Added artifacts cleanup

* Removed delete on s3 sync

* Added RPM migrations

* v8 migrations

* Partial v8 migration

* Migration remainder

* Reduced requested resources

* Updated resource limits per step

* Added k8s stage resource limits to drone

* Fixed format issue

* Removed resource requests

* Added `depends_on` support to dronegen

* v8.3 migrations

* Fixed parallelism

* Removed migration parallelism

* Fixed RPM base arch lookup

* v6 and v7 YUM migration

* Fixed missing ISA

* Updated repo file path

* Added logging

* Removed vars from repo file

* v8.3 migration first batch

* v8.3 migration second batch

* v9.0 migration

* v9.1 migration

* v9.2 migration

* v9.3 first migration

* v9.3 second migration

* v10.0 migration

* Removed migrations

* Disabled shell linting non-issues

* Fixed linter problem

* More linter fixes
hydridity pushed a commit to hydridity/teleport that referenced this pull request Aug 26, 2022
…tional#14203) into branch/v9 (gravitational#15317)

* Added YUM implementation of OS package build tool (gravitational#14203)

* Added YUM implementation of OS package build tool

* Addressed PR comments

* Added YUM migrations

* Added curl to YUM dependencies

* Changed pipelines to use golang:1.18.4-bullseye for Go

* Implemented proper repo downloading logic

* Fixed other merge conflicts

* Added artifacts cleanup

* Removed delete on s3 sync

* Added RPM migrations

* v8 migrations

* Partial v8 migration

* Migration remainder

* Reduced requested resources

* Updated resource limits per step

* Added k8s stage resource limits to drone

* Fixed format issue

* Removed resource requests

* Added `depends_on` support to dronegen

* v8.3 migrations

* Fixed parallelism

* Removed migration parallelism

* Fixed RPM base arch lookup

* v6 and v7 YUM migration

* Fixed missing ISA

* Updated repo file path

* Added logging

* Removed vars from repo file

* v8.3 migration first batch

* v8.3 migration second batch

* v9.0 migration

* v9.1 migration

* v9.2 migration

* v9.3 first migration

* v9.3 second migration

* v10.0 migration

* Removed migrations

* Disabled shell linting non-issues

* Fixed linter problem

* More linter fixes

* Fixed merge issue with dropped function
Joerger pushed a commit that referenced this pull request Aug 26, 2022
… into branch/v10 (#15127)

Added YUM implementation of OS package build tool (#14203)

* Added YUM implementation of OS package build tool

* Addressed PR comments

* Added YUM migrations

* Added curl to YUM dependencies

* Changed pipelines to use golang:1.18.4-bullseye for Go

* Implemented proper repo downloading logic

* Fixed other merge conflicts

* Added artifacts cleanup

* Removed delete on s3 sync

* Added RPM migrations

* v8 migrations

* Partial v8 migration

* Migration remainder

* Reduced requested resources

* Updated resource limits per step

* Added k8s stage resource limits to drone

* Fixed format issue

* Removed resource requests

* Added `depends_on` support to dronegen

* v8.3 migrations

* Fixed parallelism

* Removed migration parallelism

* Fixed RPM base arch lookup

* v6 and v7 YUM migration

* Fixed missing ISA

* Updated repo file path

* Added logging

* Removed vars from repo file

* v8.3 migration first batch

* v8.3 migration second batch

* v9.0 migration

* v9.1 migration

* v9.2 migration

* v9.3 first migration

* v9.3 second migration

* v10.0 migration

* Removed migrations

* Disabled shell linting non-issues

* Fixed linter problem

* More linter fixes
@zmb3 zmb3 deleted the fred/rfd-0058-YUM-implementation branch September 9, 2022 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants